
#ifndef SUPC_H_INCLUDED
#define SUPC_H_INCLUDED

#include "compiler.h"

/// @cond 0
/**INDENT-OFF**/
#ifdef __cplusplus
extern "C" {
#endif
/**INDENT-ON**/
/// @endcond

void supc_enable_backup_mode(Supc *p_supc);
void supc_switch_sclk_to_32kxtal(Supc *p_supc, uint32_t ul_bypass);
void supc_enable_voltage_regulator(Supc *p_supc);
void supc_disable_voltage_regulator(Supc *p_supc);
void supc_enable_brownout_detector(Supc *p_supc);
void supc_disable_brownout_detector(Supc *p_supc);
void supc_enable_brownout_reset(Supc *p_supc);
void supc_disable_brownout_reset(Supc *p_supc);
void supc_set_monitor_threshold(Supc *p_supc, uint32_t ul_threshold);
void supc_set_monitor_sampling_period(Supc *p_supc, uint32_t ul_period);
void supc_enable_monitor_reset(Supc *p_supc);
void supc_disable_monitor_reset(Supc *p_supc);
void supc_enable_monitor_interrupt(Supc *p_supc);
void supc_disable_monitor_interrupt(Supc *p_supc);
void supc_set_wakeup_mode(Supc *p_supc, uint32_t ul_mode);
void supc_set_wakeup_inputs(Supc *p_supc, uint32_t ul_inputs,
		uint32_t ul_transition);
uint32_t supc_get_status(Supc *p_supc);

/// @cond 0
/**INDENT-OFF**/
#ifdef __cplusplus
}
#endif
/**INDENT-ON**/
/// @endcond

#endif /* SUPC_H_INCLUDED */
